____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Java-Syntax
part 3/15 Β· 52.8 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Die Hierarchie fΓΌr das Umwandeln (type casting) der primitiven Datentypen lΓ€sst sich aus der oberen Tabelle erahnen. Die numerischen Datentypen lassen sich verlustfrei in den nΓ€chstgrΓΆΓeren Datentyp umrechnen, jedoch nicht umgekehrt. So kann ein βintβ implizit, also ohne speziellen Operator, in ein βlongβ umgewandelt werden, jedoch nicht umgekehrt.
int i = 12345;
long l = i;
Um jedoch in umgekehrter Richtung beispielsweise einen βlongβ in ein βintβ umzuwandeln, muss der Typumwandlungsoperator verwendet werden. Dabei kΓΆnnen auch Informationen verloren gehen.
long l = 12345678901L;
int i = (int) l;
Hier tritt ein Informationsverlust auf: βiβ hat nach der Zuweisung den Wert β539222987, weil die hΓΆherwertigen Bytes abgeschnitten werden.
Der primitive Datentyp βbooleanβ kann in keinen anderen Datentyp umgewandelt werden. Zeichen vom Typ βcharβ kΓΆnnen implizit in jeden ganzzahligen Typ ab βintβ umgewandelt werden. Dies hΓ€ngt insbesondere damit zusammen, dass βcharβ den einzigen in Java bekannten vorzeichenlosen Datentyp darstellt. Damit ist eine verlustfreie Konvertierung nach βshortβ ab dem Wert 32768 nicht mehr mΓΆglich.
Referenzen
Alle Objekte und Felder liegen im Heap-Speicher und werden deshalb ΓΌber eine Adresse referenziert. Der Objektzugriff in Java ist ΓΌber Referenzen implementiert, welche den aus C/C++ bekannten Zeigern Γ€hneln.cite-ref-1[1] Die Sprachdefinition (Java Language Specification) bezeichnet sie als βReference Valuesβ, um deutlich zu machen, dass sie durch Call-by-Value ΓΌbergeben werden.cite-ref-sun-reference-value-2-0[2] In Java gibt es keine direkte MΓΆglichkeit, die Speicheradresse einer Referenz anzuzeigen oder diese zu modifizieren, wodurch sogenannte Zeigerarithmetik in Java ausgeschlossen wird.
Object a = new Object(); // a referenziert das gerade neu erstellte Objekt
Object b = a; // b referenziert dasselbe Objekt wie a
a = null; // a referenziert kein Objekt mehr, enthΓ€lt somit die reservierte Adresse null.
Hierbei gilt es festzuhalten, dass auch Zeichenketten (Klasse String) Referenztypen darstellen und daher inhaltlich stets ΓΌber die Methode equals() zu vergleichen sind (β==β kontrolliert nur die Referenzen, d. h. Speicheradressen). Dies steht im Gegensatz zu Programmiersprachen wie C++ und C#, welche die vollstΓ€ndige OperatorenΓΌberladung unterstΓΌtzen und bei "hallo"=="hallo" Inhaltsvergleiche durchfΓΌhren.
Reservierte WΓΆrter
const und goto sind zwar reserviert, aber ohne Funktion, also keine SchlΓΌsselwΓΆrter im eigentlichen Sinn. Sie dienen lediglich dem Compiler zur Ausgabe sinnvoller Fehlermeldungen fΓΌr Umsteiger von C++ oder C.
true, false und null sind Literale, jedoch ebenfalls eigentlich keine SchlΓΌsselwΓΆrter im engeren Sinn.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ